package cn.lili.xiaoran.controller;

import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage;
import cn.lili.xiaoran.entity.LiQuestionnaire;
import cn.lili.xiaoran.entity.dtos.LiQuestionnaireDTO;
import cn.lili.xiaoran.entity.vo.LiQuestionnaireVo;
import cn.lili.xiaoran.mapper.LiQuestionnaireMapper;
import cn.lili.xiaoran.service.LiQuestionnaireService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;

/**
 * 问卷 控制器
 *
 * @author LiLang
 * @since 2022/09/21
 */
@RestController
@Api(tags = "问卷接口")
@RequestMapping("/buyer/lili/questionnaire")
@Transactional(rollbackFor = Exception.class)
@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class LiQuestionnaireController {

    private final LiQuestionnaireService liQuestionnaireService;

    @Resource
    private LiQuestionnaireMapper liQuestionnaireMapper;

    @PostMapping
    @ApiOperation(value = "保存问卷, 并返回积分")
    public ResultMessage<LiQuestionnaireDTO> save(@RequestBody LiQuestionnaireVo vo) {
        return new ResultUtil<LiQuestionnaireDTO>().setData(liQuestionnaireService.calc(vo));
    }
    @GetMapping("/{userId}")
    @ApiOperation(value = "保存问卷, 并返回积分")
    public ResultMessage<List<LiQuestionnaire>> getmynair(@PathVariable Long userId) {
        QueryWrapper<LiQuestionnaire> query=new QueryWrapper<>();
        query.eq("user_id",userId);
        List<LiQuestionnaire> list=liQuestionnaireMapper.selectList(query);
        return new ResultUtil<List<LiQuestionnaire>>().setData(list);
    }

    @GetMapping("/byid/{id}")
    @ApiOperation(value = "保存问卷, 并返回积分")
    public ResultMessage<LiQuestionnaire> getById(@PathVariable Integer id) {
        QueryWrapper<LiQuestionnaire> query=new QueryWrapper<>();
        query.eq("id",id);
        query.last(" limit 1");
        LiQuestionnaire LiQuestionnaire=liQuestionnaireMapper.selectOne(query);
        return new ResultUtil<LiQuestionnaire>().setData(LiQuestionnaire);
    }
}